#ifndef _H_BASETOKEN
#define _H_BASETOKEN

#include <string>
#include <iostream>

class basePlayer;

class baseToken
{
    private:
        static const int tokenValue = 1;
        std::string color;
        int value;
        basePlayer *owner;

    public:
        // Constructor
        baseToken(std::string aColor, basePlayer *owner);
        baseToken(std::string aColor, basePlayer *owner, int aValue);
        
        // Accessor
        std::string getColor();
        int getValue();
        basePlayer* getOwner();

        // Print
        std::string toString();
        void toString(std::ostream &out);
        void toString(std::string &str);

        bool isPayed(int aPayed);

        bool operator== (baseToken aBaseToken);
};

#endif //_H_BASETOKEN